/*
 * CotizadorAboutBox.java
 */

package com.tubosmonterrey.cotizador.paneles;

import com.csvreader.CsvReader;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.jdesktop.application.Action;
import org.jdesktop.application.Task;

public class logCSV extends javax.swing.JDialog {
    
    static EntityManagerFactory emf;
    static EntityManager em;
    String pathClientes,pathProductos,pathVendedores;
    
    
    public logCSV(java.awt.Frame parent,String pathClientes,String pathProductos,String pathVendedores) {
        super(parent);
        initComponents();
        this.pathClientes = pathClientes;
        this.pathProductos = pathProductos;
        this.pathVendedores = pathVendedores;
        setTxtAreaLog("Se accedera a los siguientes archivos: \n"
                + "Clientes:   "+pathClientes +"\n"
                + "Productos:  "+pathProductos+"\n"
                + "Vendedores: "+pathVendedores+"\n\n");
            
        emf = javax.persistence.Persistence.createEntityManagerFactory("cotizadorPU");
        getRootPane().setDefaultButton(closeButton);
    }  

    @Action public void closeAboutBox() {
        dispose();
    }

    private void setActualizados(String txtActualizados) {
        actualizados.setText(txtActualizados);
    }

    private void setNuevos(String txtnuevos) {
        nuevos.setText(txtnuevos);
    }

    private void setTxtAreaLog(String txtLog) {
        String log = txtAreaLog.getText();
        log += txtLog;
        txtAreaLog.setText(log);
    }

    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        closeButton = new javax.swing.JButton();
        titulo = new javax.swing.JLabel();
        javax.swing.JLabel lblRegistroAc = new javax.swing.JLabel();
        actualizados = new javax.swing.JLabel();
        javax.swing.JLabel lblRegistroNew = new javax.swing.JLabel();
        nuevos = new javax.swing.JLabel();
        archivo = new javax.swing.JLabel();
        scLog = new javax.swing.JScrollPane();
        txtAreaLog = new javax.swing.JTextArea();
        closeButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(com.tubosmonterrey.cotizador.CotizadorApp.class).getContext().getResourceMap(logCSV.class);
        setTitle(resourceMap.getString("title")); // NOI18N
        setModal(true);
        setName("aboutBox"); // NOI18N
        setResizable(false);

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(com.tubosmonterrey.cotizador.CotizadorApp.class).getContext().getActionMap(logCSV.class, this);
        closeButton.setAction(actionMap.get("closeAboutBox")); // NOI18N
        closeButton.setName("closeButton"); // NOI18N

        titulo.setFont(titulo.getFont().deriveFont(titulo.getFont().getStyle() | java.awt.Font.BOLD, titulo.getFont().getSize()+4));
        titulo.setText(resourceMap.getString("Application.title")); // NOI18N
        titulo.setName("titulo"); // NOI18N

        lblRegistroAc.setFont(lblRegistroAc.getFont().deriveFont(lblRegistroAc.getFont().getStyle() | java.awt.Font.BOLD));
        lblRegistroAc.setText(resourceMap.getString("lblRegistroAc.text")); // NOI18N
        lblRegistroAc.setName("lblRegistroAc"); // NOI18N

        actualizados.setText(resourceMap.getString("Application.version")); // NOI18N
        actualizados.setName("actualizados"); // NOI18N

        lblRegistroNew.setFont(lblRegistroNew.getFont().deriveFont(lblRegistroNew.getFont().getStyle() | java.awt.Font.BOLD));
        lblRegistroNew.setText(resourceMap.getString("lblRegistroNew.text")); // NOI18N
        lblRegistroNew.setName("lblRegistroNew"); // NOI18N

        nuevos.setText(resourceMap.getString("Application.homepage")); // NOI18N
        nuevos.setName("nuevos"); // NOI18N

        archivo.setText(resourceMap.getString("archivo.text")); // NOI18N
        archivo.setName("archivo"); // NOI18N

        scLog.setName("scLog"); // NOI18N

        txtAreaLog.setColumns(20);
        txtAreaLog.setEditable(false);
        txtAreaLog.setRows(5);
        txtAreaLog.setName("txtAreaLog"); // NOI18N
        scLog.setViewportView(txtAreaLog);

        closeButton1.setAction(actionMap.get("cargarArchivos")); // NOI18N
        closeButton1.setName("closeButton1"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(scLog, javax.swing.GroupLayout.DEFAULT_SIZE, 629, Short.MAX_VALUE)
                    .addComponent(titulo)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(archivo, javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                .addComponent(lblRegistroAc)
                                .addGap(18, 18, 18)
                                .addComponent(actualizados)
                                .addGap(27, 27, 27)
                                .addComponent(lblRegistroNew)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(nuevos)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 131, Short.MAX_VALUE)
                        .addComponent(closeButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(closeButton)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(titulo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(archivo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(12, 12, 12)
                .addComponent(scLog, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblRegistroAc)
                    .addComponent(actualizados)
                    .addComponent(lblRegistroNew)
                    .addComponent(nuevos)
                    .addComponent(closeButton)
                    .addComponent(closeButton1))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel actualizados;
    private javax.swing.JLabel archivo;
    private javax.swing.JButton closeButton;
    private javax.swing.JButton closeButton1;
    private javax.swing.JLabel nuevos;
    private javax.swing.JScrollPane scLog;
    private javax.swing.JLabel titulo;
    private javax.swing.JTextArea txtAreaLog;
    // End of variables declaration//GEN-END:variables

   /* 
    public void insertCSV(String path,int tipo) {

        int nuevos = 0,actualizados = 0; 
        try {
//            setTxtAreaLog("")
            setTxtAreaLog("Accediendo Archivo: "+path+"\n");            
            CsvReader productos = new CsvReader(path); 
            
                while (productos.readRecord()) {
                    String productoID = productos.get(0);
                    String productoClave = productos.get(1);
                    String productoDescripcion = productos.get(2);
                    String productoCosto = productos.get(3);
                    String productoPrecio = productos.get(4);
                    String productoExistencia = productos.get(5);
                    

                    // perform program logic here
                    System.out.println(productoID + ":" + productoClave+ ":" + productoDescripcion+ ":" + productoCosto + ":" + productoPrecio + ":" + productoExistencia);
                }
          

            productos.close();

        } catch (FileNotFoundException e) {
                 System.out.println(e.getMessage());
            logcsv.setTxtAreaLog(e.getMessage());
            
        } catch (IOException e) {
                System.out.println(e.getMessage());
            logcsv.setTxtAreaLog(e.getMessage());
        }
        return ;
    }

    @Action(block = Task.BlockingScope.APPLICATION)
    public Task cargarArchivos() {
        return new CargarArchivosTask(org.jdesktop.application.Application.getInstance(com.tubosmonterrey.cotizador.CotizadorApp.class));
    }

    private class CargarArchivosTask extends org.jdesktop.application.Task<Object, Void> {
        CargarArchivosTask(org.jdesktop.application.Application app) {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to CargarArchivosTask fields, here.
            super(app);
        }
        @Override protected Object doInBackground() {
            // Your Task's code here.  This method runs
            // on a background thread, so don't reference
            // the Swing GUI from here.
            if(!pathClientes.isEmpty()){
                setTxtAreaLog("\n\tIniciando la carga del archivo de clientes.\n\n");
                cargaClientes();
                
            }
            if(!pathProductos.isEmpty()){
                
            }
            if(!pathVendedores.isEmpty()){
                
            }
            
            
            return null;  // return your result
        }
        @Override protected void succeeded(Object result) {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }

        private void cargaClientes() {
            try {
            
            setTxtAreaLog("Accediendo Archivo: "+pathClientes+"\n");            
            CsvReader clientes = new CsvReader(pathClientes); 
            
                while (productos.readRecord()) {
                    String productoID = productos.get(0);
                    String productoClave = productos.get(1);
                    String productoDescripcion = productos.get(2);
                    String productoCosto = productos.get(3);
                    String productoPrecio = productos.get(4);
                    String productoExistencia = productos.get(5);
                    

                    // perform program logic here
                    System.out.println(productoID + ":" + productoClave+ ":" + productoDescripcion+ ":" + productoCosto + ":" + productoPrecio + ":" + productoExistencia);
                }
          

            productos.close();

        } catch (FileNotFoundException e) {
                 System.out.println(e.getMessage());
            logcsv.setTxtAreaLog(e.getMessage());
            
        } catch (IOException e) {
                System.out.println(e.getMessage());
            logcsv.setTxtAreaLog(e.getMessage());
        }
        return ;
           
        }
    }
*/
}
